package com.scs.application.modules.sys.entity;

import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.annotation.TableName;
import com.scs.application.core.entity.SimpleDataEntity;
import com.scs.application.modules.upgrade.db.annotation.EntityClassAnnotation;
import com.scs.application.modules.upgrade.db.annotation.EntityFieldAnnotation;
import com.scs.application.modules.upgrade.db.enums.EntityFieldType;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * <p>
 *
 * </p>
 */
@Data
@Accessors(chain = true)
@EntityClassAnnotation(remark = "流程节点表")
@TableName("sys_flow_node")
public class FlowNode extends SimpleDataEntity {


    // id ,在父类中处理

    @EntityFieldAnnotation(
            text = "流程ID",
            type = EntityFieldType.LONG,
            length = "",
            not_null = true,
            default_value = "",
            comment = ""
    )
    private String flowId;

    @EntityFieldAnnotation(
            text = "节点名称",
            length = "30",
            not_null = true,
            default_value = "",
            comment = ""
    )
    private String name;

    @EntityFieldAnnotation(
            text = "节点值",
            length = "20",
            not_null = true,
            default_value = "",
            comment = ""
    )
    private String value;

    @EntityFieldAnnotation(
            text = "颜色",
            length = "",
            not_null = true,
            default_value = "#000000",
            comment = "颜色。例如：#000， rgb(0,0,0), rgba(0,0,0,0)"
    )
    private String color;


    @EntityFieldAnnotation(
            text = "排序",
            length = "",
            default_value = "0",
            not_null = true,
            comment = "排序"
    )
    private Integer sort;


    @EntityFieldAnnotation(
            text = "显示表单添加按钮",
            length = "",
            default_value = "1",
            not_null = true,
            comment = "显示表单添加按钮"
    )
    private Boolean flagShowVfbAdd;

    @EntityFieldAnnotation(
            text = "显示表单保存按钮",
            length = "",
            default_value = "1",
            not_null = true,
            comment = "显示表单保存按钮"
    )
    private Boolean flagShowVfbSave;

    @EntityFieldAnnotation(
            text = "显示表单删除按钮",
            length = "",
            default_value = "1",
            not_null = true,
            comment = "显示表单删除按钮"
    )
    private Boolean flagShowVfbDelete;

    @EntityFieldAnnotation(
            text = "显示子单列表刷新按钮",
            length = "",
            default_value = "1",
            not_null = true,
            comment = "显示子单列表刷新按钮"
    )
    private Boolean flagShowVbRefresh;

    @EntityFieldAnnotation(
            text = "显示子单列表添加按钮",
            length = "",
            default_value = "1",
            not_null = true,
            comment = "显示子单列表添加按钮"
    )
    private Boolean flagShowVbAdd;

    @EntityFieldAnnotation(
            text = "显示子单列表删除按钮",
            length = "",
            default_value = "1",
            not_null = true,
            comment = "显示子单列表删除按钮"
    )
    private Boolean flagShowVbDelete;

    @EntityFieldAnnotation(
            text = "显示行编辑按钮",
            length = "",
            default_value = "1",
            not_null = true,
            comment = "显示行编辑按钮"
    )
    private Boolean flagShowVrbEdit;

    @EntityFieldAnnotation(
            text = "显示行删除按钮",
            length = "",
            default_value = "1",
            not_null = true,
            comment = "显示行删除按钮"
    )
    private Boolean flagShowVrbDelete;

    @EntityFieldAnnotation(
            text = "显示行查看按钮",
            length = "",
            default_value = "1",
            not_null = true,
            comment = "显示行查看按钮"
    )
    private Boolean flagShowVrbView;

    @EntityFieldAnnotation(
            type = EntityFieldType.JSON,
            text = "角色数组",
            length = "",
            default_value = "",
            not_null = false,
            comment = "角色数组"
    )
    private JSONArray roleCodes;



}
